package Test28;

//正则表达式————正则表达式可以校验字符串是否满足一定的规则并用来校验数据格式的合法性
/*
需求:假如现在要求校验一个qq号码是否正确。
规则:6位及20位之内，0不能在开头，必须全部是数字。
先使用目前所学知识完成校验需求
然后体验一下正则表达式检验。
 */
public class Test18 {
    public static void main(String[] args) {
        String qq = "1234567890";
        /*boolean flag = checkQQ(qq);
        if (flag) {
            System.out.println("此qq号码符合规则！");
        } else {
            System.out.println("此qq号码不符合规则！");
        }*///调用方法进行校验

        System.out.println(qq.matches("[1-9]\\d{5,19}"));
        //校验用户名是否满足规则
        //校验密码是否满足规则
        //校验身份证号码是否满足规则
        //校验手机号码是否满足规则


    }

    //定义方法校验字符串
    public static boolean checkQQ(String qq) {
        //核心思想：
        //先把异常数据进行过滤
        //下面的就是满足要求的数据了。

        //6位及20位之内
        int len = qq.length();
        if (len < 6 || len > 20) {
            return false;
        }

        //0不能在开头
        //方法1
        /*char c = qq.charAt(0);
        if (c == '0') {
            return false;
        }*/
        //方法2
        if (qq.startsWith("0")) {
            return false;
        }

        //必须全部是数字
        for (int i = 0; i < qq.length(); i++) {
            char c = qq.charAt(i);
            if (c < '0' || c > '9') {
                return false;
            }
        }
        return true;
    }
}
